<template>
  <div class="login">
    <van-form @submit="onSubmit">
      <van-field
        v-model="username"
        name="用户名"
        label="用户名"
        placeholder="用户名"
        :rules="[
          {
            required: true,
            validator: fn,
            message: '请填写用户名',
          },
        ]"
      />
      <van-field
        v-model="password"
        type="password"
        name="密码"
        label="密码"
        placeholder="密码"
        :rules="[{ required: true, message: '请填写密码' }]"
      />
      <div style="margin: 16px">
        <van-button round block type="info" native-type="submit"
          >提交</van-button
        >
      </div>
    </van-form>
  </div>
</template>

<script>
import instance from "../api/api";
import debounce from "../utils/debounce";
import { Toast } from "vant";
export default {
  name: "login",
  data() {
    return {
      username: "",
      password: "",
      debounceloginfn: null,
      nextTo: "",
    };
  },
  methods: {
    async loginfn() {
      let { data } = await instance.post("/login");
      console.log(data);
      let token = data.token;
      this.$store.commit("settoken", token);
      // 跳转
      let nextTo = this.nextTo;
      Toast({
        type: "success",
        message: "登录成功",
        onClose: () => {
          this.$router.push({ name: nextTo });
        },
      });
    },

    onSubmit(values) {
      console.log("submit", values);
      this.debounceloginfn();
    },
    fn(value) {
      console.log(value);
    },
  },
  created() {
    this.nextTo = this.$router.currentRoute.params.id;
    console.log(this.nextTo);
    this.debounceloginfn = debounce(this.loginfn, 2000);
  },
};
</script>

<style>
</style>